package cn.com.egova.erp.biz;

import cn.com.egova.erp.entity.Orders;
import com.redsun.bos.ws.Waybilldetail;

import java.io.OutputStream;
import java.util.List;

/**
 * 订单业务逻辑层接口
 *
 * @author Administrator
 */
public interface IOrdersBiz extends IBaseBiz<Orders> {

    /**
     * 审核
     * 注意：方法名 doXXX 不是随便起的，是与配置文件相对应（ <tx:method name="do*" propagation="REQUIRED"/>）,
     * 操作数据库要进行事务控制。
     *
     * @param uuid    订单编号
     * @param empUuid 审核人的员工编号
     */
    void doCheck(Long uuid, Long empUuid);


    /**
     * 确认
     *
     * @param uuid    订单编号
     * @param empUuid 确认人的员工编号
     */
    void doStart(Long uuid, Long empUuid);

    /**
     * 导出功能
     *
     * @param os   输出流
     * @param uuid 订单编号
     */
    void export(OutputStream os, Long uuid);

    /**
     * 根据模板导出
     *
     * @param os   输出流
     * @param uuid 订单编号
     */
    void exportByTemplate(OutputStream os, Long uuid);


    /**
     * 根据运单号查询运单详情
     *
     * @param sn
     * @return
     */
    List<Waybilldetail> waybilldetailList(Long sn);
}

